{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "46299946-507b-4d2a-a10c-8db0e8d0eee3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "w= [2.14334617] b= [91.24903723]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from sklearn.linear_model import LinearRegression\n",
    "x=np.array([[100],[113],[90],[89],[60],[70],[50],[45],[55],[78]])\n",
    "y=np.array([[301],[324],[285],[296],[200],[260],[300],[120],[180],[254]])\n",
    "model=LinearRegression()\n",
    "model.fit(x,y)\n",
    "print(\"w=\",model.coef_[0],\"b=\",model.intercept_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "ba98b645-cc1c-48ea-92af-86ebc9222678",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Matplotlib is building the font cache; this may take a moment.\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "y2=model.predict(x)\n",
    "plt.xlabel('面积')\n",
    "plt.ylabel('售价')\n",
    "plt.rcParams['font.sans-serif']='Simhei'\n",
    "plt.axis([40,125,100,400])\n",
    "plt.scatter(x,y,s=60,c='k',marker='o')\n",
    "plt.plot(x,y2,'r-')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "4053a544-143e-4c04-9525-794cf3cc2ac0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "200平方米二手房的预测房价是: 519.918271287976\n"
     ]
    }
   ],
   "source": [
    "a=model.predict([[200]])\n",
    "print(\"200平方米二手房的预测房价是:\",a[0][0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "5f9e43ec-efd5-4d70-b015-41e522ced34f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "均方误差为： 1682.1958065896451\n",
      "均方根误差为： 41.014580414648215\n",
      "预测准确率为： 0.711916978360718\n"
     ]
    }
   ],
   "source": [
    "x_test=np.array([[103],[115],[90],[89],[60],[70],[50],[45],[55],[78]])\n",
    "y_test=np.array([[301],[344],[275],[276],[206],[210],[124],[190],[235],[206]])\n",
    "mse=np.average((y2-np.array(y))**2)\n",
    "rmse=np.sqrt(mse)\n",
    "r2=model.score(x_test,y_test)\n",
    "print(\"均方误差为：\",mse)\n",
    "print(\"均方根误差为：\",rmse)\n",
    "print(\"预测准确率为：\",r2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "f1a4a27c-0957-4711-8514-e99e71b58ee1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "w= [   11.51226671  -282.51443231   534.2084846    401.73037118\n",
      " -1043.90460259   634.92891045   186.43568421   204.94157943\n",
      "   762.46336088    91.95399832] b= 152.5625670974632\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.datasets import load_diabetes\n",
    "from sklearn.model_selection import train_test_split\n",
    "x,y=load_diabetes().data,load_diabetes().target\n",
    "x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=8)\n",
    "model=LinearRegression()\n",
    "model.fit(x_train,y_train)\n",
    "print(\"w=\",model.coef_,\"b=\",model.intercept_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "25c50fde-3e03-47d5-a9a7-afe72ebae99d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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dr/OqRk9ejSdO3eu1/bll1+yYMGCem2GYfDb3/6WESNGcM8995CVlYXVamXjxo0NNpY+6PXXX+f888/H7Xb72iIiInjggQeYMWOGr23Xrl1kZWW14qgaUqARERFpRQUFBVit1ibPzhzKarVSWFjo10DzzTffsH///nptO3fubHCcxWJh0qRJ3HjjjaxcuZJ///vfAMydO7feJaZD3XHHHezbt4/rrruuXvuUKVManKHxNwUaERGRVlRZWUlERESLAk1ERAQOh8Ov9SxdurTRS06HTtD1er3U1NRw4YUXsnr1at577z1f37fffsvFF1/se15bW0ttba1vw874+PgG7/nwww/z1FNP1fsZOkMjIiISQhITE1u8gJ3X6yUpKalV37+uro66ujpiY2MB+L//+78Gd1MVFxdz7bXXAuat25s3b+ass84iOjratzlkXl6eb5PO1atXc/PNNwNmoOnatSsbN25ssoZJkybpDI2IiEgoy8nJYfLkyS061uPxkJOT06rvv3z5ci6//HKsViuxsbHNnhlJTk6mtraWVatW8eOPPzboHzt2LPv27eP222/ntNNOa/FmncE4Q6PbtkVERFpReno62dnZvjMdTbFarQwcOJC+ffu26vv/z//8D06nk7179/LVV19xyy238Je//IXdu3eze/duHn30Ua666ipef/119u7dS1VVVYM5Mna7nYsuuogNGzbw9NNPM2nSJNLS0nj++ecbvZTm8XjqrTo8adIkysrKfI8rr7wSoN7k4damQCMiItLK5s2bh81mazLUWK1WbDYb+fn5fnl/u93uO6uye/duLr/8cl/flVdeSZ8+fcjNzSU9PZ1Vq1YB8O677/LQQw9xxhlncO6553L22WfzwQcfYLPZWLJkCf/617944okn6NOnD8uWLav3fgcOHGDTpk306NGD5cuXM336dHr27Ol7LF26lAcffJA+ffr4ZbwAFuPgEoJhzuVyYbPZcDqdJCQkBLscERFpw6qrq9myZQupqam+uShHq6KiglGjRrFq1ap6KwV7PB6/rxS8YcMGPvnkE6666qpGJ+2COXfmpZde4pprriEuLo6lS5cyd+5chg8fzrBhw/jVr37V4DW1tbX87W9/4/e//z1nn312q9Xb3O+7pd/fCjQiIiKHaY1Ac5DdbqewsBCHw0FSUhI5OTmtfpkp1LVGoNGkYBER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CiftZZzQfsaqcYaf9jJWjTP8tOWxWow2tuTujh07KC0tJTs7m06dOrW4T0RERNqvNhdoRERERI5Wm5lDIyIiInKsFGhEREQk5CnQiIiISMgL+0AzZMgQ387cZWVlZGRkkJSURF5e3hH3hQgF48ePx2Kx+B5paWlAeI4VYOLEiQwbNsz3PNzGmZ+fX+/vefCRn58fdmN96aWX6N69O8cddxyDBw9m69atQPj9TefOnUvfvn1JTEzkmmuuYffu3UD4jHPPnj2kpqb6/n7Q/NhCddyNjbO59nAa56JFi+jVqxeRkZFkZmayceNGX19bGmdYB5qXX36Zd955BzA3qxw2bBgDBgygtLSU8vJyX9AJZZ999hmLFy/G4XDgcDhYs2ZN2I61rKyMZ555hlmzZgHh+TcdMWKE72/pcDjYvn07HTt25Oyzzw6rsX755Zfcd999vPHGG5SXl9OjRw9GjRoVdn/T9957jwkTJvD3v/+ddevW4XK5GD58eNiMc/fu3QwdOrTel19zYwvVcTc2zubaw2mcX375JTfccAPTp09nx44d9OjRg9GjRwNtcJxGmNqzZ4/RpUsX45RTTjHmzp1rFBYWGklJScaPP/5oGIZhrF271hg4cGCQq/xlamtrjfj4eKOqqqpeeziO1ev1GtnZ2cakSZN8beE4zsM9+uijxs033xx2Y33ttdeMK664wvf8448/Nk488cSwG+d1111n3H777b7nGzZsMADjP//5T1iM87zzzjNmzZplAMaWLVsMw2j+/5eh+vdtbJzNtYfTON966y1j9uzZvmM++OADIzo62jCMtjfOsD1Dc9dddzF8+HCysrIAWLduHVlZWcTFxQHQr18/ysvLg1niL7Z+/XoMw6B///506NCBIUOGsG3btrAc6/PPP8/atWtJTU3l7bffpra2NizHeajq6mqeeOIJ7r333rAb62mnncYHH3zAmjVrcDqdPP300/zP//xP2I1z9+7ddO/e3ff84OrmZWVlYTHOOXPmcNttt9Vra+5vGKp/38bG2Vx7OI1z6NChjB071vd806ZNvqkNbW2cYRloli9fzvvvv89jjz3ma3O5XKSmpvqeWywWrFYrDocjGCW2io0bN9KnTx8WLFhAeXk5UVFRjBkzJuzGum/fPu6//35OPvlkvvnmG2bOnMmgQYPCbpyHe+WVV8jKyqJnz55hN9bTTjuNyy+/nN/85jckJiZSUlLCjBkzwm6c/fv358033/TNK5g7dy5nnXVW2IyzV69eDdqaG1uojruxcTbXHm7jPKimpoYZM2Zwyy23AG1vnGEXaKqrqxkzZgyzZ8+utxNoZGRkg6WaY2Nj2b9/f6BLbDUjR46kuLiYjIwMUlNTeeqpp1i2bBlerzesxlpQUMCPP/7IBx98wKRJk1i2bBmVlZW8+OKLYTXOwz377LO+/zIKt3+/xcXFvPXWW5SUlFBVVcU111zDRRddFHbjvPvuu6mpqWHAgAFkZ2fz2GOP8ec//znsxnmo5sYWzuM+VLiO8/777+e4447j5ptvBtreOMMu0Dz88MNkZGRw8cUX12tPTk5m165d9dqqqqqIjo4OZHl+lZiYiNfr5YQTTgirsX7zzTdkZmb6dlePjIykX79+VFdXh9U4D1VRUUFFRQWDBw8Gwu/f77///W+uvvpqzjrrLI477jgeeeQRvvrqq7AbZ3JyMqtWreLVV1+lX79+nHrqqYwYMSLsxnmo5sYWzuM+VDiO89133+XZZ5/llVdeISoqCmh74wy7QPPKK6+waNEiEhMTSUxM5JVXXuGWW25h3rx5FBcX+47bunUrbrfb9yUZiu68805effVV3/PVq1cTERFBenp6WI01JSWFAwcO1Gv7+uuvefzxx8NqnId69dVXGTp0qO+DIyMjI6zGWldXx/fff+97XlVVxY8//khkZGRYjfOgrl27UlBQwLRp07BarWH39zxUc2ML53EfKtzG+dVXXzFy5Ehmz57Naaed5mtvc+MM2nRkP9m+fbuxZcsW3+Oyyy4z/va3vxm7du0yOnXqZMybN88wDMMYM2aMMXTo0CBX+8vMmzfPSEtLM1asWGG8//77xqmnnmrceOONRm1tbViNdc+ePYbNZjNmz55tbN++3XjiiSeMmJgYY/PmzWE1zkOdc845xosvvuh7Hm5/0wULFhgdOnQwZs6cabz88svG73//e6N79+5GTU1NWI3zoOnTpxvnnHOO73m4/T055K6Y5sYW6uPmsLuZmmoPp3Hu37/f+PWvf23cdNNNRlVVle/h9Xrb3DjDLtAcLjc315g7d65hGOYtZh06dDA6d+5sHH/88UZZWVlwi2sFEydONBITE42UlBRjwoQJxr59+wzDCL+xfvLJJ0Z2drbRoUMHIzU11SgsLDQMI/zGaRjmB0h0dLSxcePGeu3hNFav12tMnjzZ6N69uxEVFWWcccYZRmlpqWEY4TVOwzAMh8NhJCcnG59++mm99nAa5+Ff6M2NLZTH3dJAYxjhM87CwkIDaPA4tL+tjLPd7ba9Y8cOSktLyc7OplOnTsEux6/ay1jbyzih/YxV4wx9zY0tnMd9KI0zsNpdoBEREZHwE3aTgkVERKT9UaARERGRkKdAIyIiIiFPgUZE2hzDMHC73a1+rIiEr8hgFyAicrhvv/2Wk08+mQ4dOmCxWAAzuOzdu5fk5GRfG4DX66Vz58588cUXALjdbsrLy/nwww/5/vvvmT59elDGICKBpbucRCQkrFmzhuHDh7N169ZG+7ds2cK5555LbW0te/bsYfz48Zx33nns3buXMWPG1Lud9JtvvuGzzz7j9NNPD1D1IuJvuuQkIiFhyZIlXHbZZU32p6amsn79enbu3EnXrl254447uOiii4iLi2PYsGFs3brV9zjppJNCel8dEWlIl5xEpE3atGkTF1xwge/57t27iY2N5fXXX693XHx8PHa7nbq6OuLi4jj0pHNtbW29y1OHaqpdREKTztCISJtkGAZ1dXVs3bqVf/7znwwdOpTdu3ezdetW6urq+OKLL/jwww/ZuXMnAM8//zzJyckkJSXx9ddfk56eTseOHdm8eXOQRyIigaBAIyJtUmRky04gHzxu3Lhx7Nu3j7lz5wLwySef4HQ6SU1NbfR1Ho+ndQoVkTZBl5xEJCQsXbqUvn37AvD99983eoxhGDz22GPExMRw2WWX8eCDD1JTU0NhYSEdO3b0HedwOKipqQlI3SISGAo0IhIShgwZwsKFCwE46aSTGj3m6aefplu3bnz33Xc89thjTJgwgS+++IIhQ4b4Ak1dXV2Lz/6ISOjQJScRCQkHz9D07du30TM07733HpMnT+bxxx8HoH///qxdu5aoqCguvvhi/vnPfwJmMHr55ZcDWruI+J8CjYiEhCFDhlBWVkZZWRldunRp0N+/f38KCgro2bOnry0hIYG///3veDwerr/+egAmT57MuHHjWL9+faBKF5EA0HlXEWmTvF4v3333HWlpaRw4cACXy0VaWhoA3333HX369MHj8fhu0+7YsSODBg0CzMtKhmHw5ptvMmvWLFatWuVbd+a3v/0td911F1dccQWlpaXEx8cHZ4Ai0qoUaESkTaqrq+OEE06goqKiyWO2bt3KGWec0aDd6XRSXV3NggULKCgoICUlpV7/fffdR21tre50Egkj2vpAREREQp7m0IiIiEjIU6ARERGRkKdAIyIiIiFPgUZERERCngKNiIiIhDwFGhEREQl5CjQiIiIS8hRoREREJOQp0IiIiEjI+/9lwuUr3jPRSwAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "y2=model.predict(x)\n",
    "plt.xlabel('面积')\n",
    "plt.ylabel('售价')\n",
    "plt.rcParams['font.sans-serif']='Simhei'\n",
    "plt.axis([40,125,100,400])\n",
    "plt.scatter(x,y,s=60,c='k',marker='o')\n",
    "plt.plot(x,y2,'r-')\n",
    "plt.legend(['真实值','预测值'])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "c9d4eeec-c09e-490b-9e41-de1b472b5ea7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "均方误差为： 1682.1958065896451\n",
      "均方根误差为： 41.014580414648215\n",
      "预测准确率为： 0.711916978360718\n"
     ]
    }
   ],
   "source": [
    "x_test=np.array([[103],[115],[90],[89],[60],[70],[50],[45],[55],[78]])\n",
    "y_test=np.array([[301],[344],[275],[276],[206],[210],[124],[190],[235],[206]])\n",
    "mse=np.average((y2-np.array(y))**2)\n",
    "rmse=np.sqrt(mse)\n",
    "r2=model.score(x_test,y_test)\n",
    "print(\"均方误差为：\",mse)\n",
    "print(\"均方根误差为：\",rmse)\n",
    "print(\"预测准确率为：\",r2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "145c809d-dd4f-4b5a-a426-3e42e6f417cb",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "w= [   11.51226671  -282.51443231   534.2084846    401.73037118\n",
      " -1043.90460259   634.92891045   186.43568421   204.94157943\n",
      "   762.46336088    91.95399832] b= 152.5625670974632\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.datasets import load_diabetes\n",
    "from sklearn.model_selection import train_test_split\n",
    "x,y=load_diabetes().data,load_diabetes().target\n",
    "x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=8)\n",
    "model=LinearRegression()\n",
    "model.fit(x_train,y_train)\n",
    "print(\"w=\",model.coef_,\"b=\",model.intercept_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "dd7c4455-2655-4e1a-95e0-65d045fc890e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "模型在训练集上的预测准确率为： 0.5303801379270054\n",
      "模型在试集上的预测准确率为： 0.4593422174874441\n"
     ]
    }
   ],
   "source": [
    "r21=model.score(x_train,y_train)\n",
    "r22=model.score(x_test,y_test)\n",
    "print(\"模型在训练集上的预测准确率为：\",r21)\n",
    "print(\"模型在试集上的预测准确率为：\",r22)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0f47c322-9668-467a-9749-e5ea1f64843d",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
